package store;

import org.jdom.Element;
import store.Frammento;
import exceptions.XmlException;

public class Testo extends Frammento {
	private String testo;
	
	public Testo(String testo) {
		super();
		this.testo = testo.trim();
	}
	
	public String getTesto() {
		return testo;
	}
	
	public Element toXml() {
		return new Element("testo").setText(testo.replace(" ", "_"));
	}
	
	public static Testo fromXml(Element testo) throws XmlException {
		if (testo.getName() != "testo") throw new XmlException("L'elemento passato non rappresenta un testo");
		return new Testo(testo.getText().replace("_", " "));
	}

	@Override
	public String toString() {
		return testo + " ";
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((testo == null) ? 0 : testo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) return true;
		if (obj == null) return false;
		if (getClass() != obj.getClass()) return false;
		Testo other = (Testo)obj;
		if (testo == null) {
			if (other.testo != null) return false;
		} else if (!testo.equals(other.testo)) return false;
		return true;
	}
}
